package com.itany.corejava.code14_lambda;

/**
 * @author Miss Chen
 * @version 1.0
 * @date 2024年08月08日16:38
 */
public class Test01_基本用法 {
    public static void main(String[] args) {
        SomeInterface someInterface=new SomeInterface() {
            @Override
            public String test(String s1, String s2) {
                return s1+s2;
            }
        };

        // Lambda表达式用法，可以理解为简化匿名内部类
        // (参数)->{方法体}
        //当方法体只有一行代码，{}可以省略
        // 当方法体只有一行代码，且是return语句，{}与return关键字是可以省略
        // SomeInterface someInterfacea=(s1,s2)->{return s1+s2;};
        SomeInterface someInterfacea=(s1,s2)->s1+s2;
        System.out.println(someInterfacea.test("aa","bb"));


        SomeInterface2 someInterface2=new SomeInterface2() {
            @Override
            public void test(String s1) {
                System.out.println(s1);
            }
        };
        //Lambda的写法
        //当只有一个参数的时候，()可以省略的
        SomeInterface2 someInterfaceb=s-> System.out.println(s);
        someInterfaceb.test("aaaa");

        SomeInterface3 someInterface3=new SomeInterface3() {
            @Override
            public void test() {
                System.out.println("hello world");
            }
        };
        //Lambda的写法
        SomeInterface3 someInterfacec=()->System.out.println("hello world");
        someInterfacec.test();

    }


}
interface SomeInterface{
    String test(String s1,String s2);
}

interface  SomeInterface2{
    void test(String s1);
}
interface SomeInterface3{
    void test();
}
